#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/socket.h>
#include<arpa/inet.h>
#include<signal.h>

static int sock=0;
void func(int signal)
{
    close(sock);
    raise(SIGINT);
}

int main(int argc,void *argv[])
{
    signal(SIGTSTP,func);
    if(argc!=3)
    {
        printf("invalid numbers!\n");
        return -1;
    }
    sock=socket(AF_INET,SOCK_STREAM,0);  //tcp的套接字获取方式
    if(sock<0)
    {
        perror("socket:");
    }

    struct sockaddr_in addr;
    addr.sin_family=AF_INET;
    addr.sin_port=htons(atoi(argv[2]));
    addr.sin_addr.s_addr=inet_addr(argv[1]);
    if(connect(sock,(struct sockaddr *)&addr,sizeof(addr))!=0)
    {
        perror("connect:");
    }
    while(1)
    {
        char temp[100]={0};
        scanf("%[^\n]",temp);
        while(getchar()!='\n');
        if(send(sock,temp,100,0)<0)
        {
            perror("send:");
            return -1;
        }
    }
    return 0;
}